#include <iostream>
#include <string.h>
#include <math.h>
using namespace std;
const int inf=0x7fffffff;


int main(){
	int n;
	cin>>n;
	int a[n];
	int dp[n][n];
	memset(dp,-1,sizeof(dp));
	for(int i=0;i<n;i++){
		cin>>a[i];
		dp[i][i] = 0;
	}
	for(int len=2;len<=n;len++){
		for(int i=0;i+len-1<n;i++){
			dp[i][i+len-1] = inf;
			for(int k=i+1;k<=i+len-1;k++){
				dp[i][i+len-1] = min(dp[i][i+len-1],dp[i][k-1]+dp[k][i+len-1]);
			}
			int sum=0;
			for(int j=i;j<=i+len-1;j++){
				sum += a[j];
			}
			dp[i][i+len-1] += sum;
		}
	}
//	for(int i=0;i<n;i++){
//		for(int j=0;j<n;j++)
//			cout<<dp[i][j]<<" ";
//		cout<<endl;
//	}
	cout<<dp[0][n-1];
	return 0;
}
